﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HWR_Ants.Classes
{
    [Serializable]
    public class Options
    {
        private int antsCounter;
        private int cityCounter;
        private int iterationCounter;
        private Params parameter;
        private string stopp;

        public int AntsCounter
        {
            get { return antsCounter; }
            set { antsCounter = value; }
        }

        public int CityCounter
        {
            get { return cityCounter; }
            set { cityCounter = value; }
        }

        public int IterationCounter
        {
            get { return iterationCounter; }
            set { iterationCounter = value; }
        }

        public string Stopp
        {
            get { return stopp; }
            set { stopp = value; }
        }

        public Params Parameter
        {
            get { return parameter; }
            set { parameter = value; }
        }

        public Options()
        {
            antsCounter = 1;
            cityCounter = 1;
            iterationCounter = 1;
            parameter = new Params(1, 1, 1, 1, 1);
            stopp = "Iteration";
        }
    }

    public class Params 
    {
        private int pheromon;
        private int localeInformation;
        private double verdunstung;
        private int initialPheromon;
        private int pheromonUpdate;

        public Params()
        {
            pheromon = 0;
            localeInformation = 0;
            verdunstung = 0;
            initialPheromon = 0;
            pheromon = 0;
        }

        public Params(int p, int l, int v, int i, int pu)
        {
            pheromon = p;
            localeInformation = l;
            verdunstung = v;
            initialPheromon = i;
            pheromonUpdate = pu;
        }

        public int Pheromon
        {
            get { return pheromon; }
            set { pheromon = value; }
        }

        public int LocaleInformation
        {
            get { return localeInformation; }
            set { localeInformation = value; }
        }

        public double Verdunstung
        {
            get { return verdunstung; }
            set { verdunstung = value; }
        }

        public int InitialPheromon
        {
            get { return initialPheromon; }
            set { initialPheromon = value; }
        }

        public int PheromonUpdate
        {
            get { return pheromonUpdate; }
            set { pheromonUpdate = value; }
        }

    }
}
